Method of ranking a poker hand

ABSTRACT

There is disclosed an electronic method for ranking a poker hand. According to the method, a first hand value and a second hand value are determined from the cards of a poker hand to be given one of a plurality of ranks ( 710, 730 ). At least one of a plurality of index values is determined from the first hand value to determine a subset of possible ranks of the plurality of ranks ( 720 ). Then, the at least one index value and the second hand value are used to determine which one of the subset of possible ranks is the rank to be given to the poker hand ( 740 ).

RELATED APPLICATIONS

[Not Applicable]

FEDERALLY SPONSORED RESEARCH OR DEVELOPMENT

[Not Applicable]

MICROFICHE/COPYRIGHT REFERENCE

[Not Applicable]

BACKGROUND OF THE INVENTION

The present invention relates to a method of ranking a poker hand and a method comparing a plurality of poker hands.

To determine a winner in poker, each player's poker hand is compared against others based on a standard ranking system. For each deal, the player with the highest rank poker hand wins.

In a typical five-card poker game, there are 2,598,960 unique poker hands, each unique poker hand corresponding to one of 7,462 distinct poker hand ranks.

BRIEF SUMMARY OF THE INVENTION

In a first aspect, the invention provides an electronic method for ranking a poker hand, comprising:

-   -   determining a first hand value from the cards of a poker hand to         be given one of a plurality of ranks;     -   determining at least one of a plurality of index values from the         first hand value to determine a subset of possible ranks of the         plurality of ranks;     -   determining a second hand value from the cards of the poker         hand; and     -   using the at least one index value and the second hand value to         determine which one of the subset of possible ranks is the rank         to be given to the poker hand.

In an embodiment, determining at least one of a plurality of index values from the first hand value to determine a subset of possible ranks of the plurality of ranks comprises searching a first hand value table having a plurality of first hand value entries, each first hand value entry comprising a first hand value and at least one index value.

In an embodiment, using the at least one index value and the second hand value to determine which one of the subset of possible ranks is the rank to be given to the poker hand comprises searching a second hand value table having a plurality of second hand value entries associated with respective ones of the plurality of index values, each second hand value entry comprising a second hand value and a rank.

In an embodiment, the method further comprises determining a count value from the first hand value to determine a subset of possible ranks of the plurality of ranks.

In an embodiment, determining a count value from the first hand value to determine a subset of possible ranks of the plurality of ranks comprises searching a first hand value table having a plurality of first hand value entries, each first hand value entry comprising a first hand value, an index value, and a count value.

In an embodiment, the method further comprises using the at least one index value and the second hand value to determine a hand category.

In an embodiment, a binary search algorithm is used to search the first hand value table.

In an embodiment, a binary search algorithm is used to search the second hand value table.

In an embodiment, the subset of possible ranks comprises one possible rank.

In an embodiment, the first and second hand values are binary bit sequences.

In an embodiment, the first and second hand values are hexadecimal bit sequences.

In an embodiment, the first hand value corresponds to:

-   -   the number of Aces in the poker hand;     -   the number of Kings in the poker hand;     -   the number of Queens in the poker hand:     -   the number of Jacks in the poker hand;     -   the number of Tens in the poker hand; and     -   whether the cards of the poker hand are of the same suit.

In an embodiment, the second hand value corresponds to:

-   -   the number of Nines in the poker hand;     -   the number of Eights in the poker hand;     -   the number of Sevens in the poker hand;     -   the number of Sixes in the poker hand;     -   the number of Fives in the poker hand;     -   the number of Fours in the poker hand;     -   the number of Threes in the poker hand; and     -   the number of Twos in the poker hand.

In an embodiment, the hand category is one of a group consisting of: a high card; one pair; two pairs; three of a kind; straight; flush; full house; four of a kind; straight flush; and royal flush.

In a second aspect, the invention provides an electronic method of comparing a plurality of poker hands, comprising:

-   -   ranking each one of a plurality of poker hands by:     -   determining a first hand value from the cards of the poker hand         to be given one of a plurality of ranks;     -   determining at least one of a plurality of index values from the         first hand value to determine a subset of possible ranks of the         plurality of ranks;     -   determining a second hand value from the cards of the poker         hand; and     -   using the at least one index value and the second hand value to         determine which one of the subset of possible ranks is the rank         to be given to the poker hand; and     -   determining which one of the plurality of poker hands has the         highest rank by comparing the rank of each one of the plurality         of poker hands against the respective rank or ranks of the other         one or ones of the plurality of poker hands.

In a third aspect, the invention provides an electronic method for ranking a poker hand, comprising:

-   -   associating each possible poker hand with a first hand value         corresponding to the cards of the possible poker hand;     -   associating each possible poker hand with a second hand value         corresponding to the cards of the possible poker hand;     -   associating each second hand value with an index value and one         of a plurality of ranks; and     -   associating each first hand value with at least one index value;     -   determining a first hand value from the cards of a poker hand to         be given one of the plurality of ranks;     -   determining at least one index value from the first hand value         to determine a subset of possible ranks;     -   determining a second hand value from the cards of the poker         hand; and     -   using the at least one index value and the second hand value to         determine which one of the subset of possible ranks is the rank         to be given to the poker hand.

In a fourth aspect, the invention provides a game controller for a gaming system, the game controller configured to:

-   -   determine a first hand value from the cards of a poker hand to         be given one of a plurality of ranks;     -   determine at least one of a plurality of index values from the         first hand value to determine a subset of possible ranks of the         plurality of ranks;     -   determine a second hand value from the cards of the poker hand;         and     -   use the at least one index value and the second hand value to         determine which one of the subset of possible ranks is the rank         to be given to the poker hand.

In an embodiment, the game controller is configured to determine at least one of a plurality of index values from the first hand value to determine a subset of possible ranks of the plurality of ranks by searching a first hand value table having a plurality of first hand value entries, each first hand value entry comprising a first hand value and at least one index value.

In an embodiment, the game controller is configured to use the at least one index value and the second hand value to determine which one of the subset of possible ranks is the rank to be given to the poker hand by searching a second hand value table having a plurality of second hand value entries associated with respective ones of the plurality of index values, each second hand value entry comprising a second hand value and a rank.

In an embodiment, the game controller is further configured to determine a count value from the first hand value to determine a subset of possible ranks of the plurality of ranks.

In an embodiment, the game controller is configured to determine a count value from the first hand value to determine a subset of possible ranks of the plurality of ranks by searching a first hand value table having a plurality of first hand value entries, each first hand value entry comprising a first hand value, an index value, and a count value.

In an embodiment, the game controller is further configured to use the at least one index value and the second hand value to determine a hand category.

In an embodiment, the game controller is configured to use a binary search algorithm to search the first hand value table.

In an embodiment, the game controller is configured to use a binary search algorithm to search the second hand value table.

In an embodiment, the subset of possible ranks comprises one possible rank.

In an embodiment, the first and second hand values are binary bit sequences.

In an embodiment, the first and second hand values are hexadecimal bit sequences.

In an embodiment, the first hand value corresponds to:

-   -   the number of Aces in the poker hand;     -   the number of Kings in the poker hand;     -   the number of Queens in the poker hand;     -   the number of Jacks in the poker hand;     -   the number of Tens in the poker hand; and     -   whether the cards of the poker hand are of the same suit.

In an embodiment, the second hand value corresponds to:

-   -   the number of Nines in the poker hand;     -   the number of Eights in the poker hand;     -   the number of Sevens in the poker hand;     -   the number of Sixes in the poker hand;     -   the number of Fives in the poker hand;     -   the number of Fours in the poker hand;     -   the number of Threes in the poker hand; and     -   the number of Twos in the poker hand.

In an embodiment, the hand category is one of a group consisting of: a high card; one pair; two pairs; three of a kind; straight; flush; full house; four of a kind; straight flush; and royal flush.

In a fifth aspect, the invention provides a game controller for a gaming system, the game controller configured to:

-   -   rank each one of a plurality of poker hands by:     -   determining a first hand value from the cards of the poker hand         to be given one of a plurality of ranks;     -   determining at least one of a plurality of index values from the         first hand value to determine a subset of possible ranks of the         plurality of ranks;     -   determining a second hand value from the cards of the poker         hand; and     -   using the at least one index value and the second hand value to         determine which one of the subset of possible ranks is the rank         to be given to the poker hand; and     -   determine which one of the plurality of poker hands has the         highest rank by comparing the rank of each one of the plurality         of poker hands against the respective rank or ranks of the other         one or ones of the plurality of poker hands.

In a sixth aspect, the invention provides a game controller for a gaming system, the game controller configured to:

-   -   associate each possible poker hand with a first hand value         corresponding to the cards of the possible poker hand;     -   associate each possible poker hand with a second hand value         corresponding to the cards of the possible poker hand;     -   associate each second hand value with an index value and one of         a plurality of ranks; and     -   associate each first hand value with at least one index value;     -   determine a first hand value from the cards of a poker hand to         be given one of the plurality of ranks;     -   determine at least one index value from the first hand value to         determine a subset of possible ranks;     -   determine a second hand value from the cards of the poker hand;         and     -   use the at least one index value and the second hand value to         determine which one of the subset of possible ranks is the rank         to be given to the poker hand.

In an embodiment, the first hand value is determined by a first hand value determiner;

-   -   the at least one index value is determined by an index value         determiner;     -   the second hand value is determined by a second hand value         determiner; and     -   the rank to be given to the poker hand is determined by a poker         hand rank determiner.

In an embodiment, the poker hand having the highest rank is determined by a highest rank poker hand determiner.

In an embodiment, each possible poker hand is associated with a first hand value by a first hand value associator;

-   -   each possible poker hand is associated with a second hand value         by a second hand value associator;     -   each second hand value is associated with an index value by an         index value associator;     -   each second hand value is associated with a rank by a rank         associator; and     -   each first hand value is associated with at least one index         value by the index value associator.

In a seventh aspect, the invention provides a gaming system comprising:

-   -   a display for presenting a poker hand to a player; and     -   a game controller configured to:     -   determine a first hand value from the cards of the poker hand to         be given one of a plurality of ranks;     -   determine at least one of a plurality of index values from the         first hand value to determine a subset of possible ranks of the         plurality of ranks;     -   determine a second hand value from the cards of the poker hand;         and     -   use the at least one index value and the second hand value to         determine which one of the subset of possible ranks is the rank         to be given to the poker hand.

In an embodiment, the game controller is configured to determine at least one of a plurality of index values from the first hand value to determine a subset of possible ranks of the plurality of ranks by searching a first hand value table having a plurality of first hand value entries, each first hand value entry comprising a first hand value and at least one index value.

In an embodiment, the game controller is configured to use the at least one index value and the second hand value to determine which one of the subset of possible ranks is the rank to be given to the poker hand by searching a second hand value table having a plurality of second hand value entries associated with respective ones of the plurality of index values, each second hand value entry comprising a second hand value and a rank.

In an embodiment, the game controller is further configured to determine a count value from the first hand value to determine a subset of possible ranks of the plurality of ranks.

In an embodiment, the game controller is configured to determine a count value from the first hand value to determine a subset of possible ranks of the plurality of ranks by searching a first hand value table having a plurality of first hand value entries, each first hand value entry comprising a first hand value, an index value, and a count value.

In an embodiment, the game controller is further configured to use the at least one index value and the second hand value to determine a hand category.

In an embodiment, the game controller is configured to use a binary search algorithm to search the first hand value table.

In an embodiment, the game controller is configured to use a binary search algorithm to search the second hand value table.

In an embodiment, the subset of possible ranks comprises one possible rank.

In an embodiment, the first and second hand values are binary bit sequences.

In an embodiment, the first and second hand values are hexadecimal bit sequences.

In an embodiment, the first hand value corresponds to:

-   -   the number of Aces in the poker hand;     -   the number of Kings in the poker hand;     -   the number of Queens in the poker hand;     -   the number of Jacks in the poker hand;     -   the number of Tens in the poker hand; and     -   whether the cards of the poker hand are of the same suit.

In an embodiment, the second hand value corresponds to:

-   -   the number of Nines in the poker hand;     -   the number of Eights in the poker hand;     -   the number of Sevens in the poker hand;     -   the number of Sixes in the poker hand;     -   the number of Fives in the poker hand;     -   the number of Fours in the poker hand;     -   the number of Threes in the poker hand; and     -   the number of Twos in the poker hand.

In an embodiment, the hand category is one of a group consisting of: a high card; one pair; two pairs; three of a kind; straight; flush; full house; four of a kind; straight flush; and royal flush.

In an eighth aspect, the invention provides a gaming system comprising:

-   -   at least one display for presenting a plurality of poker hands         to respective ones of a plurality of players; and     -   a game controller configured to:     -   rank each one of a plurality of poker hands by:     -   determining a first hand value from the cards of the poker hand         to be given one of a plurality of ranks;     -   determining at least one of a plurality of index values from the         first hand value to determine a subset of possible ranks of the         plurality of ranks;     -   determining a second hand value from the cards of the poker         hand; and     -   using the at least one index value and the second hand value to         determine which one of the subset of possible ranks is the rank         to be given to the poker hand; and     -   determine which one of the plurality of poker hands has the         highest rank by comparing the rank of each one of the plurality         of poker hands against the respective rank or ranks of the other         one or ones of the plurality of poker hands.

In a ninth aspect, the invention provides a gaming system, comprising:

-   -   a display for presenting a poker hand to a player; and     -   a game controller configured to:     -   associate each possible poker hand with a first hand value         corresponding to the cards of the possible poker hand;     -   associate each possible poker hand with a second hand value         corresponding to the cards of the possible poker hand;     -   associate each second hand value with an index value and one of         a plurality of ranks; and     -   associate each first hand value with at least one index value;     -   determine a first hand value from the cards of a poker hand to         be given one of the plurality of ranks;     -   determine at least one index value from the first hand value to         determine a subset of possible ranks;     -   determine a second hand value from the cards of the poker hand;         and     -   use the at least one index value and the second hand value to         determine which one of the subset of possible ranks is the rank         to be given to the poker hand.

In an embodiment, the first hand value is determined by a first hand value determiner;

-   -   the at least one index value is determined by an index value         determiner;     -   the second hand value is determined by a second hand value         determiner; and     -   the rank to be given to the poker hand is determined by a poker         hand rank determiner.

In an embodiment, the poker hand having the highest rank is determined by a highest rank poker hand determiner.

In an embodiment, each possible poker hand is associated with a first hand value by a first hand value associator;

-   -   each possible poker hand is associated with a second hand value         by a second hand value associator;     -   each second hand value is associated with an index value by an         index value associator;     -   each second hand value is associated with a rank by a rank         associator; and     -   each first hand value is associated with at least one index         value by the index value associator.

In a tenth aspect, the invention provides a gaming machine comprising:

-   -   a display for presenting a poker hand to a player;     -   one or more input devices operable by a player to place a wager         and initiate play of a poker game; and     -   a game controller in data communication with the input devices         and display, the game controller comprising a processor arranged         to execute program code stored in a memory in order to conduct a         game in response to operation of the one or more input devices,         the program code including instructions such that in at least         occasionally, the game controller, will as part of game play:     -   determine a first hand value from the cards of the poker hand to         be given one of a plurality of ranks;     -   determine at least one of a plurality of index values from the         first hand value to determine a subset of possible ranks of the         plurality of ranks;     -   determine a second hand value from the cards of the poker hand;         and     -   use the at least one index value and the second hand value to         determine which one of the subset of possible ranks is the rank         to be given to the poker hand.

In an embodiment, the game controller is configured to determine at least one of a plurality of index values from the first hand value to determine a subset of possible ranks of the plurality of ranks by searching a first hand value table having a plurality of first hand value entries, each first hand value entry comprising a first hand value and at least one index value.

In an embodiment, the game controller is configured to use the at least one index value and the second hand value to determine which one of the subset of possible ranks is the rank to be given to the poker hand by searching a second hand value table having a plurality of second hand value entries associated with respective ones of the plurality of index values, each second hand value entry comprising a second hand value and a rank.

In an embodiment, the game controller is further configured to determine a count value from the first hand value to determine a subset of possible ranks of the plurality of ranks.

In an embodiment, the game controller is configured to determine a count value from the first hand value to determine a subset of possible ranks of the plurality of ranks by searching a first hand value table having a plurality of first hand value entries, each first hand value entry comprising a first hand value, an index value, and a count value.

In an embodiment, the game controller is further configured to use the at least one index value and the second hand value to determine a hand category.

In an embodiment, the game controller is configured to use a binary search algorithm to search the first hand value table.

In an embodiment, the game controller is configured to use a binary search algorithm to search the second hand value table.

In an embodiment, the subset of possible ranks comprises one possible rank.

In an embodiment, the first and second hand values are binary bit sequences.

In an embodiment, the first and second hand values are hexadecimal bit sequences.

In an embodiment, the first hand value corresponds to:

-   -   the number of Aces in the poker hand;     -   the number of Kings in the poker hand;     -   the number of Queens in the poker hand;     -   the number of Jacks in the poker hand;     -   the number of Tens in the poker hand; and     -   whether the cards of the poker hand are of the same suit.

In an embodiment, the second hand value corresponds to:

-   -   the number of Nines in the poker hand;     -   the number of Eights in the poker hand;     -   the number of Sevens in the poker hand;     -   the number of Sixes in the poker hand;     -   the number of Fives in the poker hand;     -   the number of Fours in the poker hand;     -   the number of Threes in the poker hand; and     -   the number of Twos in the poker hand.

In an embodiment, the hand category is one of a group consisting of: a high card; one pair; two pairs; three of a kind; straight; flush; full house; four of a kind; straight flush; and royal flush.

In an eleventh aspect, the invention provides a gaming machine comprising:

-   -   at least one display for presenting a plurality of poker hands         to respective ones of a plurality of players;     -   one or more input devices operable by each player to place a         wager and initiate play of a poker game; and     -   a game controller in data communication with the input devices         and display, the game controller comprising a processor arranged         to execute program code stored in a memory in order to conduct a         game in response to operation of the one or more input devices,         the program code including instructions such that in at least         occasionally, the game controller, will as part of game play:     -   rank each one of a plurality of poker hands by:     -   determining a first hand value from the cards of the poker hand         to be given one of a plurality of ranks;     -   determining at least one of a plurality of index values from the         first hand value to determine a subset of possible ranks of the         plurality of ranks;     -   determining a second hand value from the cards of the poker         hand; and     -   using the at least one index value and the second hand value to         determine which one of the subset of possible ranks is the rank         to be given to the poker hand; and     -   determine which one of the plurality of poker hands has the         highest rank by comparing the rank of each one of the plurality         of poker hands against the respective rank or ranks of the other         one or ones of the plurality of poker hands.

In a twelfth aspect, the invention provides a gaming machine comprising:

-   -   a display for presenting a poker hand to a player;     -   one or more input devices operable by a player to place a wager         and initiate play of a poker game; and     -   a game controller in data communication with the input devices         and display, the game controller comprising a processor arranged         to execute program code stored in a memory in order to conduct a         game in response to operation of the one or more input devices,         the program code including instructions such that in at least         occasionally, the game controller, will as part of game play:     -   associate each possible poker hand with a first hand value         corresponding to the cards of the possible poker hand;     -   associate each possible poker hand with a second hand value         corresponding to the cards of the possible poker hand;     -   associate each second hand value with an index value and one of         a plurality of ranks; and     -   associate each first hand value with at least one index value;     -   determine a first hand value from the cards of a poker hand to         be given one of the plurality of ranks;     -   determine at least one index value from the first hand value to         determine a subset of possible ranks;     -   determine a second hand value from the cards of the poker hand;         and     -   use the at least one index value and the second hand value to         determine which one of the subset of possible ranks is the rank         to be given to the poker hand.

In an embodiment, the first hand value is determined by a first hand value determiner;

-   -   the at least one index value is determined by an index value         determiner;     -   the second hand value is determined by a second hand value         determiner; and     -   the rank to be given to the poker hand is determined by a poker         hand rank determiner.

In an embodiment, the poker hand having the highest rank is determined by a highest rank poker hand determiner.

In an embodiment, each possible poker hand is associated with a first hand value by a first hand value associator;

-   -   each possible poker hand is associated with a second hand value         by a second hand value associator;     -   each second hand value is associated with an index value by an         index value associator;     -   each second hand value is associated with a rank by a rank         associator; and     -   each first hand value is associated with at least one index         value by the index value associator.

In a thirteenth aspect, the invention provides a gaming system comprising:

-   -   means for determining a first hand value from the cards of the         poker hand to be given one of a plurality of ranks;     -   means for determining at least one of a plurality of index         values from the first hand value to determine a subset of         possible ranks of the plurality of ranks;     -   means for determining a second hand value from the cards of the         poker hand; and     -   means for using the at least one index value and the second hand         value to determine which one of the subset of possible ranks is         the rank to be given to the poker hand;

In a fourteenth aspect, the invention provides a gaming system comprising:

-   -   means for ranking each one of a plurality of poker hands,         comprising:     -   means for determining a first hand value from the cards of the         poker hand to be given one of a plurality of ranks;     -   means for determining at least one of a plurality of index         values from the first hand value to determine a subset of         possible ranks of the plurality of ranks;     -   means for determining a second hand value from the cards of the         poker hand; and     -   means for using the at least one index value and the second hand         value to determine which one of the subset of possible ranks is         the rank to be given to the poker hand; and     -   means for determining which one of the plurality of poker hands         has the highest rank by comparing the rank of each one of the         plurality of poker hands against the respective rank or ranks of         the other one or ones of the plurality of poker hands.

In a fifteenth aspect, the invention provides a gaming system comprising:

-   -   means for associating each possible poker hand with a first hand         value corresponding to the cards of the possible poker hand;     -   means for associating each possible poker hand with a second         hand value corresponding to the cards of the possible poker         hand;     -   means for associating each second hand value with an index value         and one of a plurality of ranks; and     -   means for associating each first hand value with at least one         index value;     -   means for determining a first hand value from the cards of a         poker hand to be given one of the plurality of ranks;     -   means for determining at least one index value from the first         hand value to determine a subset of possible ranks;     -   means for determining a second hand value from the cards of the         poker hand; and     -   means for using the at least one index value and the second hand         value to determine which one of the subset of possible ranks is         the rank to be given to the poker hand.

In a sixteenth aspect, the invention provides computer program code which when executed implements any one of the above electronic methods.

In a seventeenth aspect, the invention provides a tangible computer readable medium comprising the above computer program code.

In an eighteenth aspect, the invention provides a data signal comprising the above computer program code.

In a nineteenth aspect, the invention provides transmitting the above computer program code.

BRIEF DESCRIPTION OF SEVERAL VIEWS OF THE DRAWINGS

Exemplary embodiments of the invention will now be described with reference to the accompanying drawings in which:

FIG. 1 is a block diagram of the core components of a gaming system;

FIG. 2 is a perspective view of a stand alone gaming machine;

FIG. 3 is a block diagram of the functional components of a gaming machine;

FIG. 4 is a schematic diagram of the functional components of a memory;

FIG. 5 is a schematic diagram of a gaming system;

FIG. 6 is a block diagram of a gaming system;

FIG. 7 is a flow chart of an embodiment;

FIG. 8 is a top view of a multi-player gaming system;

FIG. 9A is a block diagram of a multi-player gaming system;

FIG. 9B is a block diagram of the game controller of gaming system of FIG. 9B;

FIG. 10 is a flow chart of an alternative embodiment;

FIG. 11 is a block diagram of another gaming system; and

FIG. 12 is a flow chart illustrating how a first and second hand value table is determined.

DETAILED DESCRIPTION OF THE INVENTION

Referring to the figures, there is illustrated a gaming system having a game controller configured to rank a poker hand by determining a first hand value corresponding to the cards of the poker hand, a second hand value corresponding to the cards of the poker hand, and at least one of a plurality of index values from the first hand value. Advantageously, the game controller is configured to use the at least one index value to determine a subset of possible ranks of a plurality of ranks and the second hand value to determine which one of the subset of possible ranks is the rank to be given to the poker hand, thereby avoiding the need to search through all unique poker hands (in the case of a typical 5-card poker game, all 2,598,960 unique poker hands) to determine the rank of the poker hand.

In an embodiment, the game controller is also configured to compare a plurality of poker hands by determining the rank of each poker hand and comparing the rank of each poker hand against the other poker hands.

In another embodiment, the game controller is also configured to associate each possible poker hand with first and second hand values corresponding to the cards of the possible poker hand, each second hand value with an index value and one of a plurality of ranks, and each first hand value with at least one index value.

General Construction of the Gaming System

The gaming system can take a number of different forms. In a first form, a stand alone gaming machine is provided wherein all or most components required for implementing the game are present in a player operable gaming machine.

In a second form, a distributed architecture is provided wherein some of the components required for implementing the game are present in a player operable gaming machine and some of the components required for implementing the game are located remotely relative to the gaming machine. For example, a “thick client” architecture may be used wherein part of the game is executed on a player operable gaming machine and part of the game is executed remotely, such as by a gaming server; or a “thin client” architecture may be used wherein most of the game is executed remotely such as by a gaming server and a player operable gaming machine is used only to display audible and/or visible gaming information to the player and receive gaming inputs from the player.

However, it will be understood that other arrangements are envisaged. For example, an architecture may be provided wherein a gaming machine is networked to a gaming server and the respective functions of the gaming machine and the gaming server are selectively modifiable. For example, the gaming system may operate in stand alone gaming machine mode, “thick client” mode or “thin client” mode depending on the game being played, operating conditions, and so on. Other variations will be apparent to persons skilled in the art.

Irrespective of the form, the gaming system has several core components. At the broadest level, the core components are a player interface 50 and a game controller 60 as illustrated in FIG. 1. The player interface is arranged to enable manual interaction between a player and the gaming system and for this purpose includes the input/output components required for the player to enter instructions to play the game and observe the game outcomes.

Components of the player interface may vary from embodiment to embodiment but will typically include a credit mechanism 52 to enable a player to input credits and receive payouts, one or more displays 54, a game play mechanism 56 including one or more input devices that enable a player to input game play instructions (e.g. to place a wager), and one or more speakers 58.

The game controller 60 is in data communication with the player interface and typically includes a processor 62 that processes the game play instructions in accordance with game play rules and outputs game play outcomes to the display. Typically, the game play rules are stored as program code in a memory 64 but can also be hardwired. Herein the term “processor” is used to refer generically to any device that can process game play instructions in accordance with game play rules and may include: a microprocessor, microcontroller, programmable logic device or other computational device, a general purpose computer (e.g. a PC) or a server.

The gaming system can be implemented in a form suitable for playing a single player game or for playing a multi-player game. For example, the gaming system can be a multi-player poker table comprising a plurality of player interfaces, each player interface having one or more displays and one or more input devices. In such an example, a number of different architectures are possible. In one example, each of a plurality of controllers can be associated with each player interface and each controller can be used to determine the rank of a poker hand for individual players and a central controller can be used to compare the ranks of the poker hands. In another example, the player interfaces can be associated with a single controller and the same controller can be used to determine the poker hand ranks of all players and to compare the ranks of the poker hands.

A gaming system in the form of a stand alone gaming machine 10 is illustrated in FIG. 2. The gaming machine 10 includes a console 12 having a display 14 on which are displayed representations of a game 16 that can be played by a player. A mid-trim 20 of the gaming machine 10 houses a bank of buttons 22 for enabling a player to interact with the gaming machine, in particular during game play. The mid-trim 20 also houses a credit input mechanism 24 which in this example includes a coin input chute 24A and a bill collector 24B. Other credit input mechanisms may also be employed, for example, a card reader for reading a smart card, debit card or credit card. Other gaming machines may configure for ticket in such that they have a ticket reader for reading tickets having a value and crediting the player based on the face value of the ticker. A player marketing module (not shown) having a reading device may also be provided for the purpose of reading a player tracking device, for example as part of a loyalty program. The player tracking device may be in the form of a card, flash drive or any other portable storage medium capable of being read by the reading device. In some embodiments, the player marketing module may provide an additional credit mechanism, either by transferring credits to the gaming machine from credits stored on the player tracking device or by transferring credits from a player account in data communication with the player marketing module.

A top box 26 may carry artwork 28, including for example pay tables and details of bonus awards and other information or images relating to the game. Further artwork and/or information may be provided on a front panel 29 of the console 12. A coin tray 30 is mounted beneath the front panel 29 for dispensing cash payouts from the gaming machine 10.

The display 14 shown in FIG. 2 is in the form of a video display unit, particularly a cathode ray tube screen device. Alternatively, the display 14 may be a liquid crystal display, plasma screen, any other suitable video display unit, or the visible portion of an electromechanical device. The top box 26 may also include a display, for example a video display unit, which may be of the same type as the display 14, or of a different type.

FIG. 3 shows a block diagram of operative components of a typical gaming machine which may be the same as or different to the gaming machine of FIG. 2.

The gaming machine 100 includes a game controller 101 having a processor 102 mounted on a circuit board. Instructions and data to control operation of the processor 102 are stored in a memory 103, which is in data communication with the processor 102. Typically, the gaming machine 100 will include both volatile and non-volatile memory and more than one of each type of memory, with such memories being collectively represented by the memory 103.

The gaming machine has hardware meters 104 for purposes including ensuring regulatory compliance and monitoring player credit, an input/output (I/O) interface 105 for communicating with peripheral devices of the gaming machine 100. The input/output interface 105 and/or the peripheral devices may be intelligent devices with their own memory for storing associated instructions and data for use with the input/output interface or the peripheral devices. A random number generator module 113 generates random numbers for use by the processor 102. Persons skilled in the art will appreciate that the reference to random numbers includes pseudo-random numbers.

In the example shown in FIG. 3, a player interface 120 includes peripheral devices that communicate with the game controller 101 including one or more displays 106, a touch screen and/or buttons 107 (which provide a game play mechanism), a card and/or ticket reader 108, a printer 109, a bill acceptor and/or coin input mechanism 110 and a coin output mechanism 111. Additional hardware may be included as part of the gaming machine 100, or hardware may be omitted as required for the specific implementation. For example, while buttons or touch screens are typically used in gaming machines to allow a player to place a wager and initiate a play of a game any input device that enables the player to input game play instructions may be used. For example, in some gaming machines a mechanical handle is used to initiate a play of the game.

In addition, the gaming machine 100 may include a communications interface, for example a network card 112. The network card may, for example, send status information, accounting information or other information to a bonus controller, central controller, server or database and receive data or commands from the bonus controller, central controller, server or database. In embodiments employing a player marketing module, communications over a network may be via player marketing module—i.e. the player marketing module may be in data communication with one or more of the above devices and communicate with it on behalf of the gaming machine.

FIG. 4 shows a block diagram of the main components of an exemplary memory 103. The memory 103 includes RAM 103A, EPROM 103B and a mass storage device 103C. The RAM 103A typically temporarily holds program files for execution by the processor 102 and related data. The EPROM 103B may be a boot ROM device and/or may contain some system or game related code. The mass storage device 103C is typically used to store game programs, the integrity of which may be verified and/or authenticated by the processor 102 using protected code from the EPROM 103B or elsewhere.

It is also possible for the operative components of the gaming machine 100 to be distributed, for example input/output devices 106,107,108,109,110,111 to be provided remotely from the game controller 101.

FIG. 5 shows a gaming system 200 in accordance with an alternative embodiment. The gaming system 200 includes a network 201, which for example may be an Ethernet network. Gaming machines 202, shown arranged in three banks 203 of two gaming machines 202 in FIG. 5, are connected to the network 201. The gaming machines 202 provide a player operable interface and may be the same as the gaming machines 10,100 shown in FIGS. 2 and 3, or may have simplified functionality depending on the requirements for implementing game play. While banks 203 of two gaming machines are illustrated in FIG. 5, banks of one, three or more gaming machines are also envisaged.

One or more displays 204 may also be connected to the network 201. For example, the displays 204 may be associated with one or more banks 203 of gaming machines. The displays 204 may be used to display representations associated with game play on the gaming machines 202, and/or used to display other representations, for example promotional or informational material.

In a thick client embodiment, game server 205 implements part of the game played by a player using a gaming machine 202 and the gaming machine 202 implements part of the game. With this embodiment, as both the game server and the gaming device implement part of the game, they collectively provide a game controller. A database management server 206 may manage storage of game programs and associated data for downloading or access by the gaming devices 202 in a database 206A. Typically, if the gaming system enables players to participate in a Jackpot game, a Jackpot server 207 will be provided to perform accounting functions for the Jackpot game. A loyalty program server 212 may also be provided.

In a thin client embodiment, game server 205 implements most or all of the game played by a player using a gaming machine 202 and the gaming machine 202 essentially provides only the player interface. With this embodiment, the game server 205 provides the game controller. The gaming machine will receive player instructions, pass these to the game server which will process them and return game play outcomes to the gaming machine for display. In a thin client embodiment, the gaming machines could be computer terminals, e.g. PCs running software that provides a player interface operable using standard computer input and output components. Other client/server configurations are possible, and further details of a client/server architecture can be found in WO 2006/052213 and PCT/SE2006/000559, the disclosures of which are incorporated herein by reference.

Servers are also typically provided to assist in the administration of the gaming network 200, including for example a gaming floor management server 208, and a licensing server 209 to monitor the use of licenses relating to particular games. An administrator terminal 210 is provided to allow an administrator to run the network 201 and the devices connected to the network.

The gaming system 200 may communicate with other gaming systems, other local networks, for example a corporate network, and/or a wide area network such as the Internet, for example through a firewall 211.

Persons skilled in the art will appreciate that in accordance with known techniques, functionality at the server side of the network may be distributed over a plurality of different computers. For example, elements may be run as a single “engine” on one server or a separate server may be provided. For example, the game server 205 could run a random generator engine. Alternatively, a separate random number generator server could be provided. Further, persons skilled in the art will appreciate that a plurality of game servers could be provided to run different games or a single game server may run a plurality of different games as required by the terminals.

In yet a further alternative embodiment (not shown), one of the individual gaming machines 202 is capable of acting as the server, providing networked game play and awarding functionality for the other gaming machines 202. In such an embodiment, the gaming machines not acting as the server would be designated as slaves (i.e. the clients).

Further Detail of the Gaming System

Exemplary embodiments of the present invention relate to gaming systems that implement poker-style games (that is, any one or more of a variety of different poker games) and are described in relation to an example of a 5-card poker hand.

The game controller of a gaming system is illustrated in more detail in FIG. 6. The game controller 60 incorporates a processor 62 that implements a number of modules to determine the rank of a poker hand based on program code 641 stored in memory 64.

Persons skilled in the art will appreciate that the modules are based typically on program code and data stored in a memory. Persons skilled in the art will also appreciate that the modules need not be implemented using a processor but that one or more of the modules could be implemented in some other way, for example by a dedicated circuit.

In this embodiment, memory 64 comprises not only program code 641 for implementing modules but also a first hand value table 692 and a second hand value table 694.

The first hand value table 692 comprises 279 first hand value entries. The second hand value table 694 comprises 7,462 second hand value entries. In this embodiment, each second hand value entry comprises a second hand value associated with an index value and one of the 7,462 poker hand ranks, and each first hand value entry comprises a first hand value and at least one index value, each index value being associated with a second hand value. Each first hand value is thus related to one or more second hand values via the at least one index value.

Each first hand value of the first hand value table 692 is an integer corresponding to one of 279 distinct first hand values. Each of these integers represents whether the cards of the poker hand are of the same suit, the number of Aces in the poker hand, the number of Kings in the poker hand, the number of Queens in the poker hand, the number of Jacks in the poker hand and the number of Tens in the poker hand. In an embodiment, the first hand value is represented as a hexadecimal bit sequence. It is envisaged however that the first hand value can be alternatively represented as a binary bit sequence. Examples of first hand values represented using binary and hexadecimal bit sequences are provided below.

Each second hand value of the second hand value table 694 is an integer corresponding to one of 7,462 distinct unique poker hands. Each of these integers represents the number of Nines in the poker hand, the number of Eights in the poker hand, the number of Sevens in the poker hand, the number of Sixes in the poker hand, the number of Fives in the poker hand, the number of Fours in the poker hand, the number of Threes in the poker hand and the number of Twos in the poker hand. This second hand value (like the first hand value) can be represented as a binary bit sequence or as a hexadecimal bit sequence. Examples of second hand value are provided below. An example of pseudo-code for generating first and second hand values is provided below.

Persons skilled in the art will appreciate that a second hand value is related to a first hand value if the second hand value and the first hand value can be derived from the same poker hand. For example, the second hand value entry comprising the second hand value of 0x20000100 is related to the first hand value of 0x00011000 because both the second hand value 0x20000100 and the first hand value 0x00011000 can be derived from the same poker hand of 9 of Clubs, 4 of Clubs, Ace of Diamonds, King of Spades, and 9 of Hearts.

In an alternative embodiment, instead of having one or more index values, each first hand value entry has only one index value. In this alternative embodiment, the index value of each first hand value entry is associated with a second hand value that represents one of the second hand values of the second hand value table that is related to the first hand value. It is envisaged that this second hand value typically represents the first (or the last) second hand value of the second hand table that is related to the first hand value. It is envisaged that the second hand value entry (or entries) of the second hand value table comprising second hand value(s) that are related to the same first hand value are typically grouped together.

In this embodiment, the index value associated with the second hand value of each second hand value entry serves as an index such that the second hand value entries of the second hand value table 694 are indexed in numerical sequence. It is envisaged however that in an alternative embodiment, the second hand value entries of the second hand value table that are grouped together may be indexed with the same index value so that each first hand value entry has only one index value.

In an additional or alternative embodiment, the second hand value entries of the second hand value table that are grouped are sorted (for example, each group of second hand value entries are sorted according to increasing second hand values) so that search algorithms such as a binary search algorithm may be used to more effectively search the second hand value table.

In an additional or alternative embodiment, each first hand value entry also includes a count value that represents the number of second hand value entry (or entries) having second hand values that are related to the first hand value.

In this embodiment, the first hand value table is pre-generated offline such that the table is stored in memory before the poker game. It is however envisaged that the first hand value table can also be generated online such that the table is generated during a poker game. Examples of first hand value entries are provided below.

In this embodiment, the second hand value table is also pre-generated offline. However, as with the first hand value table, it is envisaged that the second hand value table can also be generated online. Examples of second hand value entries are provided below.

In FIG. 6, the game controller 60 interfaces with a player interface 50 to receive instructions from a game play device 56 operated by a player, and to display output from the modules of the game controller 60 on a player display 54.

These modules include a display controller 610 arranged to communicate with player interface 50 to control the output displayed on display 54, a Random Number Generator (RNG) 620 arranged to generate random (or pseudo-random) numbers, a poker hand generator 630, a first hand value determiner 640, a second hand value determiner 650, an index value determiner 660, and a poker hand rank determiner 670.

The poker hand generator 630 is arranged to generate a poker hand by generating five cards using the RNG 620, and to communicate the poker hand to the display controller 610 which controls display 54. The poker hand generator 630 is also arranged to communicate the poker hand to the first hand value determiner 640 and to the second hand value determiner 650.

The first hand value determiner 640 is arranged to determine a first hand value corresponding to the cards of the poker hand to be given one of 7,462 ranks. As discussed previously, the first hand value is an integer representing whether the cards of the poker hand are of the same suit, the number of Aces in the poker hand, the number of Kings in the poker hand, the number of Queens in the poker hand, the number of Jacks in the poker hand and the number of Tens in the poker hand.

The first hand value determiner 640 is arranged to communicate the first hand value to the index value determiner 660.

The index value determiner 660 is arranged to determine at least one index value based on the first hand value to determine a subset of possible ranks from the 7,462 ranks by searching the first hand value table 692 in memory 64 for a first hand value entry having a matching first hand value and selecting the index value(s) of the first hand value entry.

The index value determiner 660 is arranged to communicate the at least one index value to the poker hand rank determiner 670.

The second hand value determiner 650 is arranged to determine a second hand value corresponding to the cards of the poker hand. In this embodiment, the second hand value is an integer representing the number of Nines in the poker hand, the number of Eights in the poker hand, the number of Sevens in the poker hand, the number of Sixes in the poker hand, the number of Fives in the poker hand, the number of Fours in the poker hand, the number of Threes in the poker hand and the number of Twos in the poker hand.

The second hand value determiner 650 is arranged to communicate the second hand value to the poker hand rank determiner 670.

The poker hand determiner 670 is arranged to use the at least one index value (from the index value determiner 660) and the second hand value (from the second hand value determiner 650) to determine which one of the subset of possible ranks (from the 7,462 possible ranks) is the rank to be given to the poker hand by searching the second hand value entries of the second hand value table 694 (having second hand values that are associated with the at least one index value) for a second hand value entry having a matching second hand value and selecting the rank associated with the second hand value.

In an alternative embodiment wherein each first hand value entry comprises only one index value, the rank to be given to the poker hand can be determined by searching the second hand value table 694 starting from the second hand value entry having the second hand value associated with an index value.

In an alternative embodiment, the rank to be given to the poker hand can also be determined using a count value representing the number of second hand value entries that are related to the first hand value. In such an embodiment, the index value and the count value together provide the start and end points for searching the second hand value table.

In an alternative embodiment wherein the second hand values of second hand value entries related to a first hand value are ordered, a binary search algorithm can be used to search the second hand value table for the second hand value entry having the matching second hand value. Such a binary search may be carried out by checking the second hand value entry (or entries) having second hand value(s) that are related to a first hand value, eliminating half the second hand value entries having second hand value(s) that are related to the first hand value, and then searching the other half of the second hand value entry (or entries) having second hand value(s) that are related to the first hand value (and repeating this process is desired).

In an additional or alternative embodiment, the poker hand rank determiner 670 is arranged to communicate with a hand category determiner (not illustrated) implemented by the processor 62 based on the program code 641 stored in memory 64, the hand category determiner being arranged to determine the hand category of the poker hand which can be one of a group consisting of: a high card; one pair; two pairs; three of a kind; straight; flush; full house; four of a kind; straight flush; and royal flush. Persons skilled in the art will appreciate that this determination can be carried out in a variety of ways. For example, each of the entries of the second hand value table can include an entry corresponding to a hand category of a poker hand.

In FIG. 6, the poker hand rank determiner 670 is arranged to communicate the rank of the poker hand to the display controller 610. The display controller 610 is arranged to communicate with the player interface 50 to display the rank of the poker hand on the display of the gaming system 54.

An embodiment of the method of ranking a poker hand is illustrated in the flow chart of FIG. 7. First, a first hand value corresponding to the cards of the poker hand to be given one of 7,462 ranks is determined 710. From this first hand value, at least one index value is determined to determine a subset of possible ranks from the 7,462 ranks 720. This determination is carried out by searching a first hand value table for a first hand value entry having the matching first hand value 724 followed by selecting the index value(s) of the first hand value entry having the matching first hand value 726.

In a typical five card poker game, the first hand value table contains 279 first hand value entries. Thus, the number corresponding to possible first hand values is much less than the number corresponding to the possible distinct hands (which is 7,462 in a typical five card poker game). In an alternative embodiment, the first hand value table also stores a count value corresponding to the first hand value and accordingly, the count value can also be determined by searching for the count value of the first hand value entry having the matching first hand value.

Besides determining the first hand value, a second hand value corresponding to the cards of the poker hand to be given one of the 7,462 ranks is also determined 730. After determining the second hand value, the rank to be given to the poker hand is determined by using the second hand value and the at least one index value 740. This determination is performed by searching the second hand entries of the second hand table (having second hand values that are related to the first value) for a matching second hand value (that is, the second hand value of the second hand value table that matches the second hand value determined at step 730) 744. The rank given to the poker hand is determined by determining the rank of the second hand value entry having the matching second hand value 746.

In a typical five card poker game, the second hand value table contains 7,462 entries corresponding to the possible distinct poker hands in a poker game. The index values of the first hand table serve to segment the second hand table so that only the relevant second hand values are searched. In an alternative embodiment, a count value representing the number of entries in the second hand value table that are related to the same first hand value is also provided in each first hand value entry to determine how many entries is required to be searched.

FIG. 8 illustrates an embodiment of a gaming system in the form of poker table commonly used by multiple players to play a poker game.

The gaming system 800 includes a table 810 having a main display 820 and a plurality of player displays 830A,830B,830C,830D,830E,830F. The main display 820 is arranged to display or present game information that is visible to all players. For example, in a poker game of the Texas hold-em variant, the shared cards can be displayed by the main display. The player displays are adapted so that they can be configured to either present game information only to one particular player or to all players. For example, each player display can be adapted to swivel forward or backward to face towards either only a player or other players. In this embodiment, the main display 820 and each of the plurality of player displays 830A,830B,830C,830D,830E,830F are all separate liquid crystal display devices. Alternatively, one of more the displays 820,830A,830B,830C,830D,830E,830F may be cathode ray tube screens, plasma screens, any other suitable video display units, or the visible portion of electromechanical devices.

A plurality of consoles 840A,840B,840C,840D,840E,840F each housing one or more buttons is also provided on the table 810 to enable players to interact with the gaming system during game play. In an alternative embodiment, instead of a plurality of consoles, each of the player displays are touch screen devices that the players may operate to interact with the gaming system.

A block diagram of an embodiment of the gaming system adapted for multiplayer gaming is illustrated in FIG. 9A.

The game controller 60 interfaces with a plurality of player interfaces 50,50A,50B,50C,50D,50E,50F. One of the player interfaces 50 interfaces with the game controller 60 to display to a main display 54 output visible to all players. The other player interfaces 50A,50B,50C,50D,50E,50F interfaces with the game controller 60 so that players can operate game play devices 56A,56B,56C,56D,56E,56F to send instructions to the game controller 60 and so that the game controller 60 can display to displays 54A,54B,54C,54D,54E,54F output that are visible only to individual players.

The memory 64 of the game controller 60 stores program code 642 for the processor to implement a number of modules. In addition, the memory 64 also stores a first hand value table 992 and a second hand value table 994. Persons skilled in the art will appreciate that the tables can be stored in a variety of ways including for example, as a static array or as a dynamic link list. In this embodiment, the tables are predetermined and loaded into memory 64. However, persons skilled in the art will appreciate that the tables can be generated “on the fly”.

FIG. 9B illustrates in greater detail the game controller of the multiplayer gaming system 900. As shown in this figure, the game controller 60 implements a plurality of modules to compare a plurality of poker hands based on program code 642 stored in a memory 64.

The processor 62 of the game controller 60 implements a number of modules based on program code 642 stored in memory 64 including a display controller 910, a Random Number Generator (RNG) 920, poker hand generator 930, first hand value determiner 940, second hand value determiner 950, index value determiner 960, poker hand rank determiner 970, play order controller 980 and a highest rank poker hand determiner 990.

The display controller 910 interfaces with each of the displays 50,50A,50B,50C,50D,50E,50F to output game information to players. The play order controller 980 operates to control game play, including determining the order of play for players.

The poker hand generator 930, first hand value determiner 940, second hand value determiner 950, index value determiner 960, and poker hand rank determiner 970 are arranged to carry out the same functions as poker hand generator 630, first hand value determiner 640, second hand value determiner 650, index value determiner 660, and poker hand rank determiner 670 of FIG. 6. That is, the poker hand generator 930 is arranged to generate poker hands using the RNG 920. The first hand value determiner 940 and second hand value determiner 950 are arranged to respectively determine the first and second hand values corresponding to the cards of each poker hand. The index value determiner 960 is arranged to determine at least index value from each first hand value by searching through the first hand value table 992 in memory 64 to determine a subset of possible ranks for each poker hand. The poker hand rank determiner 970 is arranged to use the at least one index value and the second value to determine which one of subset of possible ranks is to be given to each poker hand by searching through the second hand value table 994 in memory 64. As discussed previously, the index value determiner in an alternative embodiment can be arranged to determine not only an index value but also a count value by searching through the first hand value table 992, and the poker hand rank determiner 970 can be arranged to determine the rank of each poker hand based both index value and count value.

The highest rank poker hand determiner 990 is arranged to determine which one of the plurality of poker hands generated by the poker hand generator 930 has the highest rank. In this embodiment, this determination is carried out by comparing the rank of the poker hand of each player against the respective rank or ranks of the poker hand or poker hands of the other player or players.

A flow chart illustrating an embodiment of the method of comparing poker hands is provided in FIG. 10. Firstly, the rank of each poker hand is determined 300,310,320,330,340,350. Next each poker hand rank is compared against the other poker hand ranks to determine the poker hand having the highest rank 360.

FIG. 11 illustrates a gaming system having a game controller having a processor 62 that implements a number of modules to determine a first hand value table 592 and a second hand value table 594 based on program code 643 stored in memory 64. It is envisaged that the modules to determine the rank of a poker hand and also the modules to determine a first hand value table and a second hand value table can be implemented by the same processor of a game controller of a gaming system based on program code stored in memory of the game controller of the gaming system.

Persons skilled in the art will appreciate that the modules are based typically on program code and data stored in a memory. Persons skilled in the art will also appreciate that the modules need not be implemented using a processor but that one or more of the modules could be implemented in some other way, for example by a dedicated circuit.

These modules include a poker hand generator 510 arranged to generate all possible poker hands, first hand value associator 520, a second hand value associator 530, an index value associator 540, and a rank associator 550.

The first hand value associator 520 is arranged to associate each possible poker hand generated by the poker hand generator 510 with a first hand value corresponding to the cards of the possible poker hand. The second hand value associator 530 is arranged to associate each possible poker hand generated by the poker hand generator 510 with a second hand value corresponding to the cards of the possible poker hand.

The index value associator 540 is arranged to associate each second hand value with an index value and one of 7,462 poker hand ranks, and each first hand value with at least one index value, each index value being associated with a second hand value that is related to the first hand value (such that the first hand value and the second hand value can be determined from the same poker hand).

A flow chart illustrating the method of how a first and second hand value table are determined is provided in FIG. 12.

First, all possible poker hands are generated 410. Each possible poker hand is then associated with a first hand value corresponding to the cards of the possible poker hand 420 and a second hand value corresponding to the cards of the possible poker hand 430. Next, each second hand value is associated with an index value and one of a plurality of ranks. Once this is done, each first hand value is associated with index value(s) that are associated with second hand value(s) that are, in turn, related to the first hand value.

Example Two Person Poker Game

An example of how the poker hands of two players in a two-player poker hand are ranked and compared by a gaming system is provided in this section.

Firstly, the gaming system deals five cards to each player. In this example, the cards forming the poker hand of player 1 are 9 of Clubs, 4 of Clubs, Ace of Diamonds, King of Spades, and 9 of Hearts, and the cards forming the poker hand of player 2 are 10 of Hearts, Jack of Hearts, Queen of Hearts, King of Hearts, and Ace of Hearts.

After the cards have been dealt to both players, the gaming system determines the first hand value corresponding to the cards of each poker hand. In this example, the first hand value corresponding to the cards of the poker hand of player 1 is 0x00011000 and the first hand value corresponding to the cards of the poker hand of player 2 is 0x10011111.

The gaming system then determines the index values and count values of the poker hands of both players by searching for a matching first hand value entry in a first hand value table.

In this example, the first hand value table is a static constant array defined in the memory of the gaming system. A portion of the first hand value table with the first hand value entry comprising the first hand value 0x00011000 (that is, the first hand value of player 1) is provided below.

static const FIRST_HAND_VALUE first_hand_values[ ] = {... {0x00010310, 1, 5355}, {0x00010400, 1, 5356}, −> {0x00011000, 120, 5357}, // entry matching the first hand value of the poker hand {0x00011001, 36, 5477}, {0x00011002, 8, 5513}, ...}

As provided above, the first hand value entry comprising the matching first hand value is {0x00011000, 120, 5357}. The index value corresponding to player 1's first hand value is thus 5357 and the count value corresponding to the player 1's first hand value is thus 120.

A portion of the first hand value table with the first hand value entry comprising the first hand value 0x10011111 (that is, the first hand value of player 2) is provided below.

static const FIRST_HAND_VALUE first_hand_values[ ] = { ... −> {0x10011111, 1, 7461}, // entry matching the first hand value of the poker hand }

As provided above, the first hand value entry comprising the matching first hand value is {0x10011111, 1, 7461}. The index value corresponding to player 2's first hand value is thus 7461 and the count value corresponding to the player 2's first hand value is thus 1.

Next, the gaming system then determines the second hand value corresponding to cards of each poker hand. In this example, the second hand value corresponding to the cards of the poker hand of player 1 is 0x20000100 and the second hand value corresponding to the cards of the poker hand of player 2 is 0x00000000.

The gaming system then determines the rank of the poker hands of both players by searching for a matching second hand value entry in a second hand value table. This search starts from the second hand value entry referred to by the index value determined based on the first hand value of each player.

In this example, the second hand value table (like the first hand value table) is also a static constant array defined in the memory of the gaming system. A portion of the second hand value table with the second hand value entry comprising the second hand value 0x20000100 (that is, the second hand value of player 1) is provided below.

static const SECOND_HAND_VALUE second_hand_values[ ] = { // index value is 5357 so we start searching from this point of the second hand value table ... {0x20000001, 4434}, {0x20000010, 4433}, −> {0x20000100, 4432}, // entry matching the second hand value of the poker hand {0x20001000, 4431}, {0x20010000, 4430}, ...}

The index value based on the first hand value of player 1 is 5357 and the count value based on the first hand value of player 1 is 120. Using these values, the gaming system carries out a binary search for locating a second hand value entry in the second hand value table that comprises a second hand value that matches the second hand value of player 1's poker hand. As provided above, the second hand value entry comprising the matching second hand value is {0x20000100, 4432}. The rank corresponding to player 1's first hand value is thus 4432.

A portion of the second hand value table with the second hand value entry comprising the second hand value 0x00000000 (that is, the second hand value of player 2) is provided below.

static const SECOND_HAND_VALUE second_hand_values[ ] = { ... −> {0x00000000, 0} // index 7461 of this array }

The index value and the count value based on the first hand value of player 2 are respectively 7461 and 1. So to determine player 2's poker hand rank, the gaming system needs only to search the second hand value table starting for the 7461th second hand value entry (since there is only 1 second hand entry in the second hand value table that is compatible with the first hand value of player 2). As provided above, the second hand value entry comprising the matching second hand value is {0x00000000, 0}. The rank corresponding to player 2's first hand value is thus 0.

After the rank of player 1 and the rank of player 2 have been determined, the gaming system determines which one of the poker hands has the highest rank by comparing player 1's rank with player 2's rank. In this example, player 2's rank is determined as the highest rank because it is of a smaller value (0 when compared to 4432).

Below are examples of first hand values, how the suit flag of a first hand value can be determined, first hand value entries in a first hand value table, second hand values, and pseudo-code for generating first and second hand values.

Examples of First Hand Values

Herein is an example of a first hand value representing the number of Aces in the poker hand; the number of Kings in the poker hand; the number of Queens in the poker hand; the number of Jacks in the poker hand; the number of Tens in the poker hand; and whether the cards of the poker hand are of the same suit.

First Hand Value: xxxSxxxx|xxxxAAAA|KKKKQQQQ|JJJJTTTT

where

-   -   S=Suit flag that is set to either 1 if all five cards of the         poker hand are of the same suit or 0 otherwise. An example of         how the suit flag can be set is shown below.     -   AAAA=Number of cards of the poker hand that are Aces.     -   KKKK=Number of cards of the poker hand that are Kings.     -   QQQQ=Number of cards of the poker hand that are Queens.     -   JJJJ=Number of cards of the poker hand that are Jacks.     -   TTTT=Number of cards of the poker hand that are Tens.

For example, the poker hand: 9 of Clubs, 4 of Clubs, Ace of Diamonds, King of Spades, and 9 of Hearts has the First Hand Value: 00000000|00000001|00010000|00000000 (in binary) or 0x00011000 (in hexadecimal).

As another example, the poker hand: 10 of Hearts, Jack of Hearts, Queen of Hearts, King of Hearts, and Ace of Hearts (typically referred to as a “Royal Flush”) has the First Hand Value: 00010000|00000001|00010001|00010001 (in binary) or 0x10011111 (in hexadecimal).

Example of how the Suit Flag can be Determined

An example of how the suit flag can be determined is provided below in pseudo-code:

If (five cards have the same suit) suit_flag = 1; else suit_flag = 0; hand_high_value += suit_flag << 28;

Examples of Second Hand Values

Herein is an example of a second hand value representing the number of Nines in the poker hand; the number of Eights in the poker hand; the number of Sevens in the poker hand; the number of Sixes in the poker hand; the number of Fives in the poker hand; the number of Fours in the poker hand; the number of Threes in the poker hand; and the number of Twos in the poker hand.

Second Hand Value: 99998888|77776666|55554444|33332222 where

-   -   9999=Number of cards of the poker hand that are Nines.     -   8888=Number of cards of the poker hand that are Eights.     -   7777=Number of cards of the poker hand that are Sevens.     -   6666=Number of cards of the poker hand that are Sixes.     -   5555=Number of cards of the poker hand that are Fives.     -   4444=Number of cards of the poker hand that are Fours.     -   3333=Number of cards of the poker hand that are Threes.     -   2222=Number of cards of the poker hand that are Twos.

For example, the poker hand: 9 of Clubs, 4 of Clubs, Ace of Diamonds, King of Spades, and 9 of Hearts has the second hand value: 00100000|00000000|00000001|00000000 (in binary) or 0x20000100 (in hexadecimal).

As another example, the poker hand: 10 of Hearts, Jack of Hearts, Queen of Hearts, King of Hearts, and Ace of Hearts (typically referred to as a “Royal Flush”) has the second hand value: 00000000|00000000|00000000|00000000 (in binary) or 0x00000000 (in hexadecimal).

Example of Pseudo-Code for Generating the First and Second Hand Values.

The first hand value and second hand value can be evaluated simply using the below pseudo-code:

If (card_rank >= POKER_TEN) first_hand_value += 1 << (4*(card_rank − POKER_TEN)); else second_hand _value += 1 << (4*(card_rank)); where card_rank = Rank of a card. For example, a Two card = 0; a Three card = 1; ... a Nine card = 7; a Ten card = 8; a Jack Card = 9; a Queen card = 10; a King card = 11; an Ace Card = 12. POKER_TEN = Rank of a Ten card (that is, 8). first_hand_ value = First hand value corresponding to the cards of the poker hand. second_hand_value = Second hand value corresponding to the cards of the poker hand.

Further Aspects and Variations

Further aspects of the method will be apparent from the above description of the system. It will be appreciated that at least part of the method will be implemented digitally by a processor. Persons skilled in the art will also appreciate that the method could be embodied in program code. The program code could be supplied in a number of ways, for example on a tangible computer readable storage medium, such as a disc or a memory (for example, that could replace part of memory 103) or as a data signal (for example, by transmitting it from a server). Persons skilled in the art will appreciate that program code provides a series of instructions executable by the processor.

Similarly, it will be appreciated that the first hand value table and the second hand value table can be supplied on any appropriate tangible data carrier, such as by writing them to a magnetic swipe card, storing them in a memory (including transmitting identifiers to a device having a memory) etc.

It will be understood to persons skilled in the art of the invention that many modifications may be made without departing from the spirit and scope of the invention, in particular it will be apparent that certain features of embodiments of the invention can be employed to form further embodiments.

It is to be understood that, if any prior art is referred to herein, such reference does not constitute an admission that the prior art forms a part of the common general knowledge in the art in any country.

In the claims which follow and in the preceding description of the invention, except where the context requires otherwise due to express language or necessary implication, the word “comprise” or variations such as “comprises” or “comprising” is used in an inclusive sense, i.e. to specify the presence of the stated features but not to preclude the presence or addition of further features in various embodiments of the invention. 

1. An electronic method for ranking a poker hand, comprising: determining a first hand value from the cards of a poker hand to be given one of a plurality of ranks; determining at least one of a plurality of index values from the first hand value to determine a subset of possible ranks of the plurality of ranks; determining a second hand value from the cards of the poker hand; and using the at least one index value and the second hand value to determine which one of the subset of possible ranks is the rank to be given to the poker hand.
 2. An electronic method as claimed in claim 1, wherein determining at least one of a plurality of index values from the first hand value to determine a subset of possible ranks of the plurality of ranks comprises searching a first hand value table having a plurality of first hand value entries, each first hand value entry comprising a first hand value and at least one index value.
 3. An electronic method as claimed in claim 1, wherein using the at least one index value and the second hand value to determine which one of the subset of possible ranks is the rank to be given to the poker hand comprises searching a second hand value table having a plurality of second hand value entries associated with respective ones of the plurality of index values, each second hand value entry comprising a second hand value and a rank.
 4. An electronic method as claimed in claim 1, further comprising determining a count value from the first hand value to determine a subset of possible ranks of the plurality of ranks.
 5. An electronic method as claimed in claim 4, wherein determining a count value from the first hand value to determine a subset of possible ranks of the plurality of ranks comprises searching a first hand value table having a plurality of first hand value entries, each first hand value entry comprising a first hand value, an index value, and a count value.
 6. An electronic method as claimed in claim 1, further comprising using the at least one index value and the second hand value to determine a hand category.
 7. An electronic method as claimed in claim 2, wherein a binary search algorithm is used to search the first hand value table.
 8. An electronic method as claimed in claim 3, wherein a binary search algorithm is used to search the second hand value table.
 9. An electronic method as claimed in claim 1, wherein the subset of possible ranks comprises one possible rank.
 10. An electronic method as claimed in claim 1, wherein the first and second hand values are binary bit sequences.
 11. An electronic method as claimed in claim 1, wherein the first and second hand values are hexadecimal bit sequences.
 12. An electronic method as claimed in claim 1, wherein the first hand value corresponds to: the number of Aces in the poker hand; the number of Kings in the poker hand; the number of Queens in the poker hand: the number of Jacks in the poker hand; the number of Tens in the poker hand; and whether the cards of the poker hand are of the same suit.
 13. An electronic method as claimed in claim 1, wherein the second hand value corresponds to: the number of Nines in the poker hand; the number of Eights in the poker hand; the number of Sevens in the poker hand; the number of Sixes in the poker hand; the number of Fives in the poker hand; the number of Fours in the poker hand; the number of Threes in the poker hand; and the number of Twos in the poker hand.
 14. An electronic method as claimed in claim 6, wherein the hand category is one of a group consisting of: a high card; one pair; two pairs; three of a kind; straight; flush; full house; four of a kind; straight flush; and royal flush.
 15. An electronic method of comparing a plurality of poker hands, comprising: ranking each one of a plurality of poker hands by: determining a first hand value from the cards of the poker hand to be given one of a plurality of ranks; determining at least one of a plurality of index values from the first hand value to determine a subset of possible ranks of the plurality of ranks; determining a second hand value from the cards of the poker hand; and using the at least one index value and the second hand value to determine which one of the subset of possible ranks is the rank to be given to the poker hand; and determining which one of the plurality of poker hands has the highest rank by comparing the rank of each one of the plurality of poker hands against the respective rank or ranks of the other one or ones of the plurality of poker hands.
 16. An electronic method for ranking a poker hand, comprising: associating each possible poker hand with a first hand value corresponding to the cards of the possible poker hand; associating each possible poker hand with a second hand value corresponding to the cards of the possible poker hand; associating each second hand value with an index value and one of a plurality of ranks; and associating each first hand value with at least one index value; determining a first hand value from the cards of a poker hand to be given one of the plurality of ranks; determining at least one index value from the first hand value to determine a subset of possible ranks; determining a second hand value from the cards of the poker hand; and using the at least one index value and the second hand value to determine which one of the subset of possible ranks is the rank to be given to the poker hand.
 17. A game controller for a gaming system, the game controller configured to: determine a first hand value from the cards of a poker hand to be given one of a plurality of ranks; determine at least one of a plurality of index values from the first hand value to determine a subset of possible ranks of the plurality of ranks; determine a second hand value from the cards of the poker hand; and use the at least one index value and the second hand value to determine which one of the subset of possible ranks is the rank to be given to the poker hand.
 18. A game controller as claimed in claim 17, wherein the game controller is configured to determine at least one of a plurality of index values from the first hand value to determine a subset of possible ranks of the plurality of ranks by searching a first hand value table having a plurality of first hand value entries, each first hand value entry comprising a first hand value and at least one index value.
 19. A game controller as claimed in claim 17, wherein the game controller is configured to use the at least one index value and the second hand value to determine which one of the subset of possible ranks is the rank to be given to the poker hand by searching a second hand value table having a plurality of second hand value entries associated with respective ones of the plurality of index values, each second hand value entry comprising a second hand value and a rank.
 20. A game controller as claimed in claim 17, wherein the game controller is further configured to determine a count value from the first hand value to determine a subset of possible ranks of the plurality of ranks.
 21. A game controller as claimed in claim 20, wherein the game controller is configured to determine a count value from the first hand value to determine a subset of possible ranks of the plurality of ranks by searching a first hand value table having a plurality of first hand value entries, each first hand value entry comprising a first hand value, an index value, and a count value.
 22. A game controller as claimed in claim 17, wherein the game controller is further configured to use the at least one index value and the second hand value to determine a hand category.
 23. A game controller as claimed in claim 18, wherein the game controller is configured to use a binary search algorithm to search the first hand value table.
 24. A game controller as claimed in claim 19, wherein the game controller is configured to use a binary search algorithm to search the second hand value table.
 25. A game controller as claimed in claim 17, wherein the subset of possible ranks comprises one possible rank.
 26. A game controller as claimed in claim 17, wherein the first and second hand values are binary bit sequences.
 27. A game controller as claimed in claim 17, wherein the first and second hand values are hexadecimal bit sequences.
 28. A game controller as claimed in claim 17, wherein the first hand value corresponds to: the number of Aces in the poker hand; the number of Kings in the poker hand; the number of Queens in the poker hand: the number of Jacks in the poker hand; the number of Tens in the poker hand; and whether the cards of the poker hand are of the same suit.
 29. A game controller as claimed in claim 17, wherein the second hand value corresponds to: the number of Nines in the poker hand; the number of Eights in the poker hand; the number of Sevens in the poker hand; the number of Sixes in the poker hand; the number of Fives in the poker hand; the number of Fours in the poker hand; the number of Threes in the poker hand; and the number of Twos in the poker hand.
 30. A game controller as claimed in claim 22, wherein the hand category is one of a group consisting of: a high card; one pair; two pairs; three of a kind; straight; flush; full house; four of a kind; straight flush; and royal flush.
 31. A game controller for a gaming system, the game controller configured to: rank each one of a plurality of poker hands by: determining a first hand value from the cards of the poker hand to be given one of a plurality of ranks; determining at least one of a plurality of index values from the first hand value to determine a subset of possible ranks of the plurality of ranks; determining a second hand value from the cards of the poker hand; and using the at least one index value and the second hand value to determine which one of the subset of possible ranks is the rank to be given to the poker hand; and determine which one of the plurality of poker hands has the highest rank by comparing the rank of each one of the plurality of poker hands against the respective rank or ranks of the other one or ones of the plurality of poker hands.
 32. A game controller for a gaming system, the game controller configured to: associate each possible poker hand with a first hand value corresponding to the cards of the possible poker hand; associate each possible poker hand with a second hand value corresponding to the cards of the possible poker hand; associate each second hand value with an index value and one of a plurality of ranks; and associate each first hand value with at least one index value; determine a first hand value from the cards of a poker hand to be given one of the plurality of ranks; determine at least one index value from the first hand value to determine a subset of possible ranks; determine a second hand value from the cards of the poker hand; and use the at least one index value and the second hand value to determine which one of the subset of possible ranks is the rank to be given to the poker hand.
 33. A game controller as claimed in claim 17, wherein the first hand value is determined by a first hand value determiner; the at least one index value is determined by an index value determiner; the second hand value is determined by a second hand value determiner; and the rank to be given to the poker hand is determined by a poker hand rank determiner.
 34. A game controller as claimed in claim 31, wherein the poker hand having the highest rank is determined by a highest rank poker hand determiner.
 35. A game controller as claimed in claim 32, wherein each possible poker hand is associated with a first hand value by a first hand value associator; each possible poker hand is associated with a second hand value by a second hand value associator; each second hand value is associated with an index value by an index value associator; each second hand value is associated with a rank by a rank associator; and each first hand value is associated with at least one index value by the index value associator;
 36. A gaming system comprising: a display for presenting a poker hand to a player; and a game controller configured to: determine a first hand value from the cards of the poker hand to be given one of a plurality of ranks; determine at least one of a plurality of index values from the first hand value to determine a subset of possible ranks of the plurality of ranks; determine a second hand value from the cards of the poker hand; and use the at least one index value and the second hand value to determine which one of the subset of possible ranks is the rank to be given to the poker hand.
 37. A gaming system as claimed in claim 36, wherein the game controller is configured to determine at least one of a plurality of index values from the first hand value to determine a subset of possible ranks of the plurality of ranks by searching a first hand value table having a plurality of first hand value entries, each first hand value entry comprising a first hand value and at least one index value.
 38. A gaming system as claimed in claim 36, wherein the game controller is configured to use the at least one index value and the second hand value to determine which one of the subset of possible ranks is the rank to be given to the poker hand by searching a second hand value table having a plurality of second hand value entries associated with respective ones of the plurality of index values, each second hand value entry comprising a second hand value and a rank.
 39. A gaming system as claimed in claim 36, wherein the game controller is further configured to determine a count value from the first hand value to determine a subset of possible ranks of the plurality of ranks.
 40. A gaming system as claimed in claim 39, wherein the game controller is configured to determine a count value from the first hand value to determine a subset of possible ranks of the plurality of ranks by searching a first hand value table having a plurality of first hand value entries, each first hand value entry comprising a first hand value, an index value, and a count value.
 41. A gaming system as claimed in claim 36, wherein the game controller is further configured to use the at least one index value and the second hand value to determine a hand category.
 42. A gaming system as claimed in claim 37, wherein the game controller is configured to use a binary search algorithm to search the first hand value table.
 43. A gaming system as claimed in claim 38, wherein the game controller is configured to use a binary search algorithm to search the second hand value table.
 44. A gaming system as claimed in claim 36, wherein the subset of possible ranks comprises one possible rank.
 45. A gaming system as claimed in claim 36, wherein the first and second hand values are binary bit sequences.
 46. A gaming system as claimed in claim 36, wherein the first and second hand values are hexadecimal bit sequences.
 47. A gaming system as claimed in claim 36, wherein the first hand value corresponds to: the number of Aces in the poker hand; the number of Kings in the poker hand; the number of Queens in the poker hand: the number of Jacks in the poker hand; the number of Tens in the poker hand; and whether the cards of the poker hand are of the same suit.
 48. A gaming system as claimed in claim 36, wherein the second hand value corresponds to: the number of Nines in the poker hand; the number of Eights in the poker hand; the number of Sevens in the poker hand; the number of Sixes in the poker hand; the number of Fives in the poker hand; the number of Fours in the poker hand; the number of Threes in the poker hand; and the number of Twos in the poker hand.
 49. A gaming system as claimed in claim 41, wherein the hand category is one of a group consisting of: a high card; one pair; two pairs; three of a kind; straight; flush; full house; four of a kind; straight flush; and royal flush.
 50. A gaming system comprising: at least one display for presenting a plurality of poker hands to respective ones of a plurality of players; and a game controller configured to: rank each one of a plurality of poker hands by: determining a first hand value from the cards of the poker hand to be given one of a plurality of ranks; determining at least one of a plurality of index values from the first hand value to determine a subset of possible ranks of the plurality of ranks; determining a second hand value from the cards of the poker hand; and using the at least one index value and the second hand value to determine which one of the subset of possible ranks is the rank to be given to the poker hand; and determine which one of the plurality of poker hands has the highest rank by comparing the rank of each one of the plurality of poker hands against the respective rank or ranks of the other one or ones of the plurality of poker hands.
 51. A gaming system, comprising: a display for presenting a poker hand to a player; and a game controller configured to: associate each possible poker hand with a first hand value corresponding to the cards of the possible poker hand; associate each possible poker hand with a second hand value corresponding to the cards of the possible poker hand; associate each second hand value with an index value and one of a plurality of ranks; and associate each first hand value with at least one index value; determine a first hand value from the cards of a poker hand to be given one of the plurality of ranks; determine at least one index value from the first hand value to determine a subset of possible ranks; determine a second hand value from the cards of the poker hand; and use the at least one index value and the second hand value to determine which one of the subset of possible ranks is the rank to be given to the poker hand.
 52. A gaming system as claimed in claim 36, wherein the first hand value is determined by a first hand value determiner; the at least one index value is determined by an index value determiner; the second hand value is determined by a second hand value determiner; and the rank to be given to the poker hand is determined by a poker hand rank determiner.
 53. A gaming system as claimed in claim 50, wherein the poker hand having the highest rank is determined by a highest rank poker hand determiner.
 54. A gaming system as claimed in claim 51, wherein each possible poker hand is associated with a first hand value by a first hand value associator; each possible poker hand is associated with a second hand value by a second hand value associator; each second hand value is associated with an index value by an index value associator; each second hand value is associated with a rank by a rank associator; and each first hand value is associated with at least one index value by the index value associator;
 55. A gaming machine comprising: a display for presenting a poker hand to a player; one or more input devices operable by a player to place a wager and initiate play of a poker game; and a game controller in data communication with the input devices and display, the game controller comprising a processor arranged to execute program code stored in a memory in order to conduct a game in response to operation of the one or more input devices, the program code including instructions such that in at least occasionally, the game controller, will as part of game play: determine a first hand value from the cards of the poker hand to be given one of a plurality of ranks; determine at least one of a plurality of index values from the first hand value to determine a subset of possible ranks of the plurality of ranks; determine a second hand value from the cards of the poker hand; and use the at least one index value and the second hand value to determine which one of the subset of possible ranks is the rank to be given to the poker hand.
 56. A gaming machine as claimed in claim 55, wherein the game controller is configured to determine at least one of a plurality of index values from the first hand value to determine a subset of possible ranks of the plurality of ranks by searching a first hand value table having a plurality of first hand value entries, each first hand value entry comprising a first hand value and at least one index value.
 57. A gaming machine as claimed in claim 55, wherein the game controller is configured to use the at least one index value and the second hand value to determine which one of the subset of possible ranks is the rank to be given to the poker hand by searching a second hand value table having a plurality of second hand value entries associated with respective ones of the plurality of index values, each second hand value entry comprising a second hand value and a rank.
 58. A gaming machine as claimed in claim 36, wherein the game controller is further configured to determine a count value from the first hand value to determine a subset of possible ranks of the plurality of ranks.
 59. A gaming machine as claimed in claim 58, wherein the game controller is configured to determine a count value from the first hand value to determine a subset of possible ranks of the plurality of ranks by searching a first hand value table having a plurality of first hand value entries, each first hand value entry comprising a first hand value, an index value, and a count value.
 60. A gaming machine as claimed in claim 55, wherein the game controller is further configured to use the at least one index value and the second hand value to determine a hand category.
 61. A gaming machine as claimed in claim 56, wherein the game controller is configured to use a binary search algorithm to search the first hand value table.
 62. A gaming machine as claimed in claim 57, wherein the game controller is configured to use a binary search algorithm to search the second hand value table.
 63. A gaming machine as claimed in claim 55, wherein the subset of possible ranks comprises one possible rank.
 64. A gaming machine as claimed in claim 55, wherein the first and second hand values are binary bit sequences.
 65. A gaming machine as claimed in claim 55, wherein the first and second hand values are hexadecimal bit sequences.
 66. A gaming machine as claimed in claim 55, wherein the first hand value corresponds to: the number of Aces in the poker hand; the number of Kings in the poker hand; the number of Queens in the poker hand: the number of Jacks in the poker hand; the number of Tens in the poker hand; and whether the cards of the poker hand are of the same suit.
 67. A gaming machine as claimed in claim 55, wherein the second hand value corresponds to: the number of Nines in the poker hand; the number of Eights in the poker hand; the number of Sevens in the poker hand; the number of Sixes in the poker hand; the number of Fives in the poker hand; the number of Fours in the poker hand; the number of Threes in the poker hand; and the number of Twos in the poker hand.
 68. A gaming machine as claimed in claim 60, wherein the hand category is one of a group consisting of: a high card; one pair; two pairs; three of a kind; straight; flush; full house; four of a kind; straight flush; and royal flush.
 69. A gaming machine comprising: at least one display for presenting a plurality of poker hands to respective ones of a plurality of players; one or more input devices operable by each player to place a wager and initiate play of a poker game; and a game controller in data communication with the input devices and display, the game controller comprising a processor arranged to execute program code stored in a memory in order to conduct a game in response to operation of the one or more input devices, the program code including instructions such that in at least occasionally, the game controller, will as part of game play: rank each one of a plurality of poker hands by: determining a first hand value from the cards of the poker hand to be given one of a plurality of ranks; determining at least one of a plurality of index values from the first hand value to determine a subset of possible ranks of the plurality of ranks; determining a second hand value from the cards of the poker hand; and using the at least one index value and the second hand value to determine which one of the subset of possible ranks is the rank to be given to the poker hand; and determine which one of the plurality of poker hands has the highest rank by comparing the rank of each one of the plurality of poker hands against the respective rank or ranks of the other one or ones of the plurality of poker hands.
 70. A gaming machine comprising: a display for presenting a poker hand to a player; one or more input devices operable by a player to place a wager and initiate play of a poker game; and a game controller in data communication with the input devices and display, the game controller comprising a processor arranged to execute program code stored in a memory in order to conduct a game in response to operation of the one or more input devices, the program code including instructions such that in at least occasionally, the game controller, will as part of game play: associate each possible poker hand with a first hand value corresponding to the cards of the possible poker hand; associate each possible poker hand with a second hand value corresponding to the cards of the possible poker hand; associate each second hand value with an index value and one of a plurality of ranks; and associate each first hand value with at least one index value; determine a first hand value from the cards of a poker hand to be given one of the plurality of ranks; determine at least one index value from the first hand value to determine a subset of possible ranks; determine a second hand value from the cards of the poker hand; and use the at least one index value and the second hand value to determine which one of the subset of possible ranks is the rank to be given to the poker hand.
 71. A gaming machine as claimed in claim 55, wherein the first hand value is determined by a first hand value determiner; the at least one index value is determined by an index value determiner; the second hand value is determined by a second hand value determiner; and the rank to be given to the poker hand is determined by a poker hand rank determiner.
 72. A gaming machine as claimed in claim 69, wherein the poker hand having the highest rank is determined by a highest rank poker hand determiner.
 73. A gaming machine as claimed in claim 70, wherein each possible poker hand is associated with a first hand value by a first hand value associator; each possible poker hand is associated with a second hand value by a second hand value associator; each second hand value is associated with an index value by an index value associator; each second hand value is associated with a rank by a rank associator; and each first hand value is associated with at least one index value by the index value associator;
 74. A gaming system comprising: means for determining a first hand value from the cards of the poker hand to be given one of a plurality of ranks; means for determining at least one of a plurality of index values from the first hand value to determine a subset of possible ranks of the plurality of ranks; means for determining a second hand value from the cards of the poker hand; and means for using the at least one index value and the second hand value to determine which one of the subset of possible ranks is the rank to be given to the poker hand;
 75. A gaming system comprising: means for ranking each one of a plurality of poker hands, comprising: means for determining a first hand value from the cards of the poker hand to be given one of a plurality of ranks; means for determining at least one of a plurality of index values from the first hand value to determine a subset of possible ranks of the plurality of ranks; means for determining a second hand value from the cards of the poker hand; and means for using the at least one index value and the second hand value to determine which one of the subset of possible ranks is the rank to be given to the poker hand; and means for determining which one of the plurality of poker hands has the highest rank by comparing the rank of each one of the poker hands against the respective rank or ranks of the other one or ones of the plurality of poker hands.
 76. A gaming system comprising: means for associating each possible poker hand with a first hand value corresponding to the cards of the possible poker hand; means for associating each possible poker hand with a second hand value corresponding to the cards of the possible poker hand; means for associating each second hand value with an index value and one of a plurality of ranks; and means for associating each first hand value with at least one index value; means for determining a first hand value from the cards of a poker hand to be given one of the plurality of ranks; means for determining at least one index value from the first hand value to determine a subset of possible ranks; means for determining a second hand value from the cards of the poker hand; and means for using the at least one index value and the second hand value to determine which one of the subset of possible ranks is the rank to be given to the poker hand.
 77. An electronic methods as claimed in claim 1, further comprising executing computer program code to determine said second hand value, and to use said at least one index and said second hand value.
 78. An electronic method as claimed in claim 77, further comprising storing said computer program code in a tangible computer readable.
 79. An electronic method as claimed in claim 77, further comprising generating a data signal comprising said computer program code.
 80. An electronic method as claimed in claim 77, further comprising transmitting said computer program code. 